package cn.zwx.activiti.example.service;

import cn.zwx.activiti.example.model.req.CompleteTaskReq;
import cn.zwx.activiti.example.model.req.FormDataShowReq;
import cn.zwx.activiti.example.model.req.UserTaskImageReq;
import cn.zwx.activiti.example.model.req.UserTaskReq;
import cn.zwx.activiti.example.model.resp.FormDataShowResp;
import cn.zwx.activiti.example.model.resp.UserTaskResp;
import org.activiti.api.runtime.shared.query.Page;

import java.io.BufferedInputStream;
import java.io.InputStream;
import java.util.List;

/**
 * @description:
 * @projectName:activiti-example
 * @see:cn.zwx.activiti.example.service
 * @author:zhangwenxue
 * @createTime:2021/6/2 21:13
 * @version:1.0
 */
public interface UserTaskService {
    /**
     * @description 获取我的待办任务
     * @return java.util.List<cn.zwx.activiti.example.model.resp.UserTaskResp>
     * @author zhangwenxue
     * @createTime 2021/6/2 21:37
     **/
    Page<UserTaskResp> getTasks(UserTaskReq req);
    /**
     * @description 查询任务流程图
     * @return java.io.BufferedInputStream
     * @author zhangwenxue
     * @createTime 2021/6/3 12:28
     **/
    InputStream getTasksImage(UserTaskImageReq req) throws Exception;

    /**
     * @description 完成任务
     * @return AjaxResponse
     * @author zhangwenxue
     * @createTime 2021/6/2 21:15
     **/
    void completeTask(CompleteTaskReq req);
    /**
     * @description 渲染动态表单
     * @return java.util.List<cn.zwx.activiti.example.model.resp.FormDataShowResp>
     * @author zhangwenxue
     * @createTime 2021/6/3 22:17
     **/
    List<FormDataShowResp> formDataShow(FormDataShowReq req);
}
